const { getConnection, query } = require('../lib/db.js');

async function initLookups() {
  try {
    console.log('开始初始化字典配置数据...');
    
    // 读取并执行 SQL 脚本
    const fs = require('fs');
    const path = require('path');
    const sqlPath = path.join(__dirname, '../sql/lookups.sql');
    const sqlContent = fs.readFileSync(sqlPath, 'utf8');
    
    // 分割 SQL 语句（以分号分隔）
    const sqlStatements = sqlContent
      .split(';')
      .map(stmt => stmt.trim())
      .filter(stmt => stmt.length > 0 && !stmt.startsWith('--') && !stmt.startsWith('USE'));

    const connection = await getConnection();
    
    for (const statement of sqlStatements) {
      if (statement.trim()) {
        try {
          console.log('执行SQL:', statement.substring(0, 100) + '...');
          await connection.execute(statement);
        } catch (error) {
          if (error.code === 'ER_TABLE_EXISTS_ERROR') {
            console.log('表已存在，跳过创建');
          } else if (error.code === 'ER_DUP_ENTRY') {
            console.log('数据已存在，跳过插入');
          } else {
            console.error('执行SQL错误:', error.message);
            console.log('SQL语句:', statement);
          }
        }
      }
    }
    
    connection.release();
    console.log('字典配置数据初始化完成！');
    
  } catch (error) {
    console.error('初始化字典配置失败:', error);
  }
}

// 如果直接运行此脚本
if (require.main === module) {
  initLookups().then(() => {
    process.exit(0);
  }).catch(error => {
    console.error('初始化失败:', error);
    process.exit(1);
  });
}

module.exports = { initLookups };